a18c01e8031e7f36942ae8ce8fa2ff5fa15efe3e,app/src/main/java/org/mythtv/android/data/repository/VideoDataRepository.java,VideoDataRepository,getVideoListByContentTypeAndSeries,#String#String#,137

Before Change



        final VideoDataStore videoDataStore = videoDataStoreFactory.createCategoryDataStore( contentType );

        return videoDataStore.getSeriesInCategory( contentType, series )
                .subscribeOn( Schedulers.io() )
                .observeOn( AndroidSchedulers.mainThread() )
                .doOnError( throwable -> Log.e( TAG, "getVideoListByContentTypeAndSeries : error", throwable ) )
                .map( entities -> {
                    try {

                        return MediaItemDataMapper.transformVideos( entities );

                    } catch( UnsupportedEncodingException e ) {
                        Log.e( TAG, "getVideoListByContentTypeAndSeries : error", e );
                    }

                    return new ArrayList<>();
                });
    }

    @SuppressWarnings( "Convert2MethodRef" )

After Change


        Log.d( TAG, "getVideoListByContentTypeAndSeries : contentType=" + contentType + ", series=" + series );

        final VideoDataStore videoDataStore = videoDataStoreFactory.createCategoryDataStore( contentType );
        final ContentDataStore contentDataStore = this.contentDataStoreFactory.createMasterBackendDataStore();

        Observable<List<VideoMetadataInfoEntity>> videoEntities = videoDataStore.getSeriesInCategory( contentType, series )
                .subscribeOn( Schedulers.io() )
                .observeOn( AndroidSchedulers.mainThread() )
                .flatMap( Observable::from )
                .toList();

        Observable<List<LiveStreamInfoEntity>> liveStreamInfoEntities = contentDataStore.liveStreamInfoEntityList( null )
                .subscribeOn( Schedulers.io() )
                .observeOn( AndroidSchedulers.mainThread() );

        Observable<List<VideoMetadataInfoEntity>> videos = Observable.zip( videoEntities, liveStreamInfoEntities, ( videoEntityList, list ) -> {

            if( null != list && !list.isEmpty() ) {

                for( VideoMetadataInfoEntity videoEntity : videoEntityList ) {

                    for( LiveStreamInfoEntity liveStreamInfoEntity : list ) {

                        if( liveStreamInfoEntity.getSourceFile().endsWith( videoEntity.getFileName() ) ) {

                            videoEntity.setLiveStreamInfoEntity( liveStreamInfoEntity );

                        }

                    }

                }

            }

            return videoEntityList;
        });

        return videos
                .doOnError( throwable -> Log.e( TAG, "getVideoListByContentTypeAndSeries : error", throwable ) )
                .map( entities -> {
                    try {

                        return MediaItemDataMapper.transformVideos( entities );

                    } catch( UnsupportedEncodingException e ) {
                        Log.e( TAG, "getVideoListByContentTypeAndSeries : error", e );
                    }

                    return new ArrayList<>();
                });
    }

    @SuppressWarnings( "Convert2MethodRef" )